package Test_1111;

import java.util.*;

/**
 * Created with Intellij IDEA
 * Description:
 * User: 星辰
 */
public class Test {
    public static void main(String[] args) {
        LinkedList<Integer> list1=new LinkedList<>();
        list1.add(1);
        list1.add(3);
        list1.add(4);
    }
    public static void main4(String[] args) {
        LinkedList<Integer> list1=new LinkedList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        //for循环语句：
        for (int i = 0; i < list1.size(); i++) {
            int ret=list1.get(i);
            System.out.print(ret+" ");//1 2 3 4 5
        }
        System.out.println();
        //foreach
        for (Integer x:list1) {
            System.out.print(x+" ");//1 2 3 4 5
        }
        System.out.println();
        //迭代器：
        Iterator<Integer> a=list1.iterator();
        while (a.hasNext()){
            System.out.print(a.next()+" ");//1 2 3 4 5
        }
        System.out.println();
        ListIterator b=list1.listIterator();
        while (b.hasNext()){
            System.out.print(b.next()+" ");//1 2 3 4 5
        }
        System.out.println();
        ListIterator c=list1.listIterator(list1.size());
        while(c.hasPrevious()){
            System.out.print(c.previous()+" ");//5 4 3 2 1
        }
    }
    public static void main3(String[] args) {
        LinkedList<Integer> list1=new LinkedList<>();
        //增：
        //add：尾插
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        System.out.println(list1);//[1, 2, 3, 4, 5]
        //add：任意位置插入
        list1.add(3,100);
        System.out.println(list1);//[1, 2, 3, 100, 4, 5]
        //查：
        //contains:是否包含该元素
        System.out.println(list1.contains(11));//false
        //get:获取下标元素
        int ret=list1.get(3);
        System.out.println(ret);//100
        //indexOf:获取元素下标
        int ret2=list1.indexOf(4);
        System.out.println(ret2);//4
        //改
        //set:将某下标的元素进行更改
        list1.set(1,13);
        System.out.println(list1);//[1, 13, 3, 100, 4, 5]
        //删：
        // remove：删除第一次出现的元素
        list1.remove(2);
        list1.remove(3);
        //list1.remove(6);//超出范围，报错
        System.out.println(list1);//[1, 13, 100, 5]
        //清空
        list1.clear();
        System.out.println(list1);//无
        //大小的获取：
        System.out.println(list1.size());//0
    }
    public static void main2(String[] args) {
        List<Integer> list1=new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        //list1.size（）：list1长度
        //for循环:
        System.out.println("=====for循环语句=====");
        for (int i = 0; i < list1.size(); i++) {
            //get（i）：获取i下标的元素
            System.out.print(list1.get(i)+" ");//1 2 3 4 5
        }
        System.out.println();
        //foreach:
        //每次循环时，取出list中的一个元素，将该元素赋值给变量num中
        System.out.println("=====foreach语句=====");
        for (Integer num:list1) {
            System.out.print(num+" ");//1 2 3 4 5
        }
        System.out.println();
        //迭代器:
        // Iterator
        System.out.println("=====Iterator=====");
        Iterator<Integer> a=list1.iterator();
        //a.hasNext():用于判断集合a中是否还有下一个元素，如果有返回true，没有返回false
        while(a.hasNext()){
            //a.next:返回迭代器当前所指向的元素，然后指向下一个元素未被遍历的元素并打印
            System.out.print(a.next()+" ");
        }
        System.out.println();
        //listIterator
        System.out.println("=====listIterator=====");
        ListIterator<Integer> b=list1.listIterator();
        while(b.hasNext()){
            System.out.print(b.next()+" ");
        }
        System.out.println();
        System.out.println("=====listIterator=====");
        //
        ListIterator<Integer> c=list1.listIterator(list1.size());
        while(b.hasPrevious()){
            System.out.print(b.previous()+" ");
        }
    }
    public static void main1(String[] args) {
        List<Integer> list1=new ArrayList<>();
        //增：
        //add：尾插
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);
        System.out.println(list1);//[1, 2, 3, 4, 5]
        //add：任意位置插入
        list1.add(3,100);
        System.out.println(list1);//[1, 2, 3, 100, 4, 5]
        //查：
        //contains:是否包含该元素
        System.out.println(list1.contains(11));//false
        //get:获取下标元素
        int ret=list1.get(3);
        System.out.println(ret);//100
        //indexOf:获取元素下标
        int ret2=list1.indexOf(4);
        System.out.println(ret2);//4
        //改
        //set:将某下标的元素进行更改
        list1.set(1,13);
        System.out.println(list1);//[1, 13, 3, 100, 4, 5]
        //删：
        // remove：删除第一次出现的元素
        list1.remove(2);
        list1.remove(3);
        //list1.remove(6);//超出范围，报错
        System.out.println(list1);//[1, 13, 100, 5]
        //清空
        list1.clear();
        System.out.println(list1);//无
        //大小的获取：
        System.out.println(list1.size());
    }
}
